package com.indexingsystem.boss.admin.mapper;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.indexingsystem.boss.Vo.ProductCategoryVo;
import com.indexingsystem.boss.entity.ProductCategory;

public interface ProductCategoryMapper {

	/**
	 * 通过商品分类id删除产品分类信息.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	int deleteByPrimaryKey(String productCategoryId);

	/**
	 * 批量删除商品分类.
	 * 
	 * @param productCategoryIdList
	 * @return
	 */
	int deleteProductCategoryByIdBatch(@Param("list") List<String> list);

	/**
	 * 新增商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int insert(ProductCategory record);

	/**
	 * 带条件新增商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int insertSelective(ProductCategory record);

	/**
	 * 通过商品分类id查询商品分类信息.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	List<ProductCategory> selectProductCategoryList();

	/**
	 * 通过父商品分类id查询子商品分类列表.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	List<ProductCategory> selectSublevelProductCategorsList(String productCategoryId);

	/**
	 * 获取商品分类总数量.
	 * 
	 * @return
	 */
	Integer getProductCategoryCount();

	/**
	 * 通过父商品分类id查询子商品分类列表总数量.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	Integer getSublevelProductCategorsListSize(String productCategoryId);

	// String getMaxProductCategory();

	/**
	 * 通过商品名称查询商品分类详情.
	 * 
	 * @param productName
	 * @return
	 */
	ProductCategory getProductCategoryByProductName(String productName);

	/**
	 * 通过产品分类id查询详情.
	 * 
	 * @param productCategoryId
	 * @return
	 */
	ProductCategory selectByPrimaryKey(String productCategoryId);

	/**
	 * 修改商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKeySelective(ProductCategory record);

	/**
	 * 获取商品分类上/下级树形结构列表.
	 * 
	 * @return
	 */
	List<ProductCategoryVo> getProductCategorsList();

	/**
	 * 修改商品分类信息.
	 * 
	 * @param record
	 * @return
	 */
	int updateByPrimaryKey(ProductCategory record);
	
	/**
	 * 判断产品Id是否存在
	 * @param productId
	 * @return
	 */
	String getProductId(String productId);
}